This invention relates to digital computers; and more particularly to the computer's overall architecture. In the prior art, a wide variety of computer architectures existed. However, they all basically fall into the two broad catagories of being either a microprogrammed or a non-microprogrammed machine.
A non-microprogrammed computer is characterized as one which interprets and executes user level instructions directly with a plurality of hardwired logic gates. In comparison, a microprogrammed computer interprets and executes each user level instruction by executing a series of microcommands. These microcommands in turn are interpreted and executed by the hardwired logic gates.
One attractive feature of the microprogrammed computer is its regularity and simplicity in architecture. This is due to the fact that the microcommands, which the hardwired logic interprets and executes, generally are much simpler than the corresponding user level commands. Thus, a microprogrammed computer having one particular user level command set generally will contain substantially fewer hardware logic gates than a non-microprogrammed computer with the same user level command set.
Those logic gates which are eliminated in the microprogrammed computer however, are replaced with a set of microcommands in the control memory. Thus, the total hardware in a microprogrammed computer, including the control memory, is generally about the same as that in a corresponding non-microprogrammed computer. However, it is much easier to modify microcommands in a control memory than it is to add and delete hardwired logic gates and their interconnections. This is a most important requirement in computers whose user level language is subject to change, and in computers which emulate several user level languages. Thus, another feature of a microprogrammed computer, and perhaps its most important feature is its flexibility and the ease with which modifications can be incorporated.
But in the prior art, the extent to which even a microprogrammed computer could be modified was constrained because the logic which implemented the microcommands was hardwired. Thus, the set of microcommands that a programmer could use was fixed; and only their order in the control memory was programmable. Accordingly, new types of microcommands could be added only at the expense of modifying various hardwired logic gates and their interconnections. And this made the personality of the machine too rigid.
Thus, a primary object of this invention is to provide a more flexible architecture for a digital computer.
Another object of the invention is to provide a computer that has variable sets of microcommands.
Still another object of the invention is to provide a computer whose interpretation of a given set of microcommands is programmable.